iSCSI (Internet Small Computer System Interface) HBAs (Host Bus Adapters) (also known as initiators) are typically built as add-on adapter cards, such as PCI (Peripheral Component Interconnect) cards, that appear to the host as SCSI (Small Computer System Interface) cards. The SCSI cards get SCSI commands and encapsulate these commands as iSCSI payload over TCP/IP (Transmission Control Protocol/Internet Protocol). This encapsulated payload is sent over an Ethernet LAN (Local Area Network) connection to an iSCSI server (also known as an iSCSI target).
iSCSI HBAs typically integrate a TOE (TCP/IP Offload Engine) or a microprocessor that runs the iSCSI and TCP/IP protocol stack. Such iSCSI HBAs need a BIOS (Basic Input Output System) boot ROM (Read Only Memory) to allow the SCSI card to boot an OS (Operating System). iSCSI HBAs also need a host OS SCSI Miniport driver for the continuation of the OS boot when the BIOS hands off the control to the OS. This SCSI Miniport driver continues to serve the OS while it is running to access the SCSI or iSCSI exposed or connected disk. iSCSI HBA cards are expensive because they have a TOE and large memories for their operation including the boot ROM.
An alternative iSCSI system uses an iSCSI initiator driver that plugs underneath the OS storage stack as a SCSI driver and converts the OS SCSI commands to iSCSI payload. This payload is sent on top of the OS TCP/IP stack. With this software initiator driver that runs on the host CPU (Central Processing Unit), the OS can access iSCSI targets using a low cost LAN controller.
Running off the LAN controller requires that the LAN stack be running before the iSCSI initiator driver starts to run. The LAN stack loads from the OS boot disk where the OS is stored and this is done using the OS storage Miniport driver. Typically the storage driver is loaded to the host memory by the BIOS boot process which includes very basic essential components like the storage drivers that are marked as boot time drivers. The LAN stack is not loaded at this time so that the iSCSI initiator provided by the OS can not work at this early stage. This may prevent the system from booting up completely from the remote iSCSI target.